// utils/jsonUtil.js

/**
 * 安全解析JSON字符串
 * @param {string} jsonStr 原始JSON字符串（可能包含转义符、换行符）
 * @returns {object} 转换后的对象，如果解析失败返回 {}
 */
export function parseJSONSafe(jsonStr) {
  if (!jsonStr || typeof jsonStr !== "string") return {};

  try {
    // 去除首尾空格
    jsonStr = jsonStr.trim();

    // 如果带转义符，比如 \" 或 \r\n，先做一次反转义处理
    // 这种情况通常是字符串嵌套字符串的形式
    if (jsonStr.startsWith('"') && jsonStr.endsWith('"')) {
      // 去掉外层引号
      jsonStr = jsonStr.slice(1, -1);
    }

    // 将转义的换行符、双引号还原
    jsonStr = jsonStr
      .replace(/\r\n/g, "")
      .replace(/\\r\\n/g, "")
      .replace(/\\"/g, '"');

    // 解析JSON
    return JSON.parse(jsonStr);
  } catch (e) {
    // console.error("❌ JSON解析失败:", e, jsonStr);
    return jsonStr;
  }
}
